I. Field of the Invention
The invention generally relates to mobile stations used in mobile communication systems and in particular to a virtual device architecture for use in mobile station.
II. Description of the Related Art
Cellular telephones or other mobile stations for use within mobile communication systems typically include one or more processors which control a variety of peripheral components such as a keypad, character display, radio frequency (RF) transceiver and the like. In use, software executing on the processors operate to control the various peripheral devices to, for example, initiate a wireless telephone call. In this regard, the processor monitors the keypad to detect entry of keystrokes representative of a telephone number to be dialed and simultaneously displays the number using the character-based display. Once the number has been entered, and a keypad SEND command is entered, the processors controls other components, such as the RF transceiver, to initiate the telephone call by transmitting appropriate signals to a base station, including signals representative of the telephone number being dialed.
Preferably, the processors are capable of controlling a wide variety of peripheral components including various specific models of components. For example, the processors are preferably capable of controlling specific models of character-based displays and/or specific models of bit mapped-based displays. By permitting the processors to control a wide variety of different peripheral equipment, a manufacturer can design and manufacture a variety of cellular telephone models each having different combinations of peripheral components to appeal to different customers or to satisfy different needs. For example, one cellular telephone may include a state of the art bit-mapped display, a keypad with a large number of keys, and a pointing device such as a touch sensitive screen. Another, less expensive, cellular telephone may include only a small character-based display along with a rudimentary 12-key keypad.
Although it is desirable to provide processors capable of controlling a wide variety of peripheral equipments, a problem arises because different peripheral components use different command signals from one another. As a result, typically, a different version of the software executing on the processor may need to be provided for each different combination of peripheral components. Thus, one version of the processor software is created for use with a character-based display whereas another is created for use with a bit mapped-based display. Depending upon the particulars of the various displays, different versions of the software may be required for displays provided by different manufacturers and may also be required for different display models provided by a single manufacturer. As can be appreciated, given the wide variety of different peripheral components available for use within a mobile station and given the large variations based upon manufacturer or model number, numerous different versions of the processor software are required. Hence, the time and cost required to develop, maintain and upgrade the software can become considerable, resulting in higher costs to the consumer and perhaps delaying the development of new mobile station products.
The aforementioned problems are particularly significant for xe2x80x9csmart phonesxe2x80x9d, i.e. wireless telephones capable of numerous additional functions beyond those of wireless telephonyxe2x80x94such as personal digital assistant (PDA) functions and the like. Smart phones typically require many more peripheral hardware components than conventional wireless telephones thereby exacerbating the problems associated with developing software capable of controlling the peripheral hardware components.
Accordingly, it would be highly desirable to implement a virtual device architecture within a mobile station, particularly a smart phone, to permit software executing on processors of the mobile station to interface with any of a variety of different peripheral components via a set of virtual device drivers and it is to that end that aspects of the present invention are directed. Another aspect of the invention is directed to providing abstract physical device control from high level logical commands.
It would also be desirable to provide a virtual device architecture which provides a rich set of commands to fully exploit capabilities of state-of-the-art devices for use in mobile stations, again particularly smart phones, such as mapped-based display devices and pointer devices, and devices unique to wireless mobile stations such as RF transmitters.
In accordance with the invention, a system is provided for interfacing software executing on a processor of a mobile station of a wireless communication system with any of a plurality of hardware devices connectable within the mobile station. The system comprises a set of logical or virtual device drivers for converting commands received from the software applications to commands appropriate for use by selected hardware devices and physical device drivers for receiving the converted commands from the virtual device drivers and for directly controlling the selected hardware devices. By providing virtual and physical device drivers for use with peripherals, the need to provide different versions of software executing on the processors to accommodate different types of peripheral devices is substantially eliminated resulting in a considerable reduction in the time and cost associated with developing, maintaining and upgrading the software.
In an exemplary embodiment, the mobile station is a smart phone capable of performing mobile telephony functions and also capable of performing personal digital assistant (PDA) functions, such as calendaring, scheduling and the like. Two separate processors are provided, one directed to handling the mobile telephony functions and the other directed to handling the xe2x80x9cPDAxe2x80x9d functions. Alternatively, a single integrated processor is provided for handling both sets of functions. Software operating within the mobile station includes a device encapsulation layer, a standard/services encapsulation layer and a user applications encapsulation layer. The aforementioned logical and physical device drivers form part of the device encapsulation layer. More specifically, the device encapsulation layer includes a board support package (BSP) including numerous physical device drivers such as display drivers, RF transceiver drivers, and the like. Additional physical device drivers may also be provided separate from the BSP. The aforementioned logical device drivers form an interface between the physical device drivers and the standard/services encapsulation layer, which includes software providing call management, voice services, power management services and the like. The software of the standard/services encapsulation layer, in turn, provides an interface with any user applications such as a voice recognition software or other high level software functionality.
In the exemplary embodiment, the logical device drivers of the device encapsulation layer provide translation of core commands necessary to control the selected hardware devices and extended commands for enhanced control of the selected hardware devices. The logical device drivers operate to convert the extended commands into core commands prior to forwarding to the physical device drivers. Exemplary core commands include draw commands and area control commands for use with bit mapped-based display devices. Exemplary extended commands for use with bit mapped-based displays include commands directed to controlling the display area, resolution and color of the bit mapped-based display. Other extended commands include commands directed to controlling graphic objects, graphic icons and animation. By providing logical device drivers capable of accommodating both core commands and extended commands, a rich set of peripheral commands can be accommodated thereby reducing or eliminating the need to provide different versions of the software executing on the processor while nevertheless exploiting the capabilities of a wide variety of peripheral devices, including state-of-the-art hardware devices such as bit mapped-displays, pointer devices and the like.
Thus, by providing a virtual device architecture which accommodates both core commands and extended commands and which accommodates a large number of peripheral devices unique to mobile stations, including RF transceiver devices, the disadvantages described above are substantially overcome. Other objects, advantages and features of the invention will be apparent from the detailed description which follows in conjunction with the accompanying drawings.